//
//  HXBaseTableViewController.swift
//  DemoSinaWeibo
//
//  Created by Mon on 15/11/23.
//  Copyright © 2015年 Mon. All rights reserved.
//

import UIKit

class HXBaseTableViewController: UITableViewController {
    
    //这里需要进行判断,如果用户登录的话,则就是原生的tableViewControlle;如果用户没有登录,则显示“访客视图”
    //创建用户登录的标识
    var userLogin = HXUserAccount.userLogin
    
    //判断当前用户状态
    override func loadView() {
        userLogin ? super.loadView() : setupVistor()
    }
    
    //创建访客视图,并且设置访客视图的背景
    private func setupVistor(){
        view = vistorView
        
        //访客视图遵循代理
        vistorView.delegate = self
        
        //这个方法中可以监听到不同视图之间的改变,故可以判断在那个视图该显示什么内容
        if self is HXHomeTableViewController{
            
            vistorView.rotationAnimation()
            //调用监听来监测视图在前台和后台切换的时候,当前动画需要开始和暂停
                //前台开启动画的监听
            NSNotificationCenter.defaultCenter().addObserver(self, selector: "didBecomeActive", name: UIApplicationDidBecomeActiveNotification, object: nil)
                //后台暂停动画的监听
            NSNotificationCenter.defaultCenter().addObserver(self, selector: "didEnterBackground", name: UIApplicationDidEnterBackgroundNotification, object: nil)
        }else if self is HXMessageTableViewController{
            
            vistorView.setupInfo("visitordiscover_image_message", message: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
        }else if self is HXDiscoverTableViewController{
            
            vistorView.setupInfo("visitordiscover_image_message", message: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
        }else if self is HXProfileTableViewController{
            
            vistorView.setupInfo("visitordiscover_image_profile", message: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
        }
        
        //设置导航栏的title和点击事件
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: "vistorViewRigisterButtonClick")
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登陆", style: UIBarButtonItemStyle.Plain, target: self, action: "vistorViewLoginButtonClick")
    }
    
    //移除通知
    deinit{
        //移除通知,如果是首页视图的话,才需要移除动画
        if self is HXHomeTableViewController{
            NSNotificationCenter.defaultCenter().removeObserver(self)
        }
    }
    
    // MARK: - 实现动画的前后台的监听方法
    func didBecomeActive(){
        vistorView.resumeAnimation()
    }
    func didEnterBackground(){
        vistorView.pauseAnimation()
    }
    // MARK: - 为了得到访客视图类,故需要进行懒加载,上面直接赋值创建的view无法拿到
    private lazy var vistorView: HXVistorView = HXVistorView()
}

/// 为HXBaseTableViewController添加扩展方法,实现HXVistorView访客视图的代理方法
extension HXBaseTableViewController: HXVistorViewDelegate {
    
    func vistorViewLoginButtonClick() {
        let oauthVC = HXOauthViewController()
        //modal模态出一个控制器,显示用户登录界面;登录界面需要导航条
        presentViewController(UINavigationController(rootViewController: oauthVC), animated: true, completion: nil)
    }
    
    func vistorViewRigisterButtonClick() {
        print("----注册")
    }
    
}








